package com.bjpowernode.javase.collection;

import java.util.*;

/*
java.util.Collection 集合接口
java.util.Collections 集合工具类，方便集合的操作
 */
public class CollectionsTest {
    public static void main(String[] args) {

        //ArrayList集合不是线程安全的
        List<String> list = new ArrayList<>();

        //变成线程安全的
        Collections.synchronizedList(list);

        //排序
        list.add("abc");
        list.add("abf");
        list.add("abe");
        list.add("abd");
        Collections.sort(list);

        for(String s :list){
            System.out.println(s);
        }

        //注意：对list集合进行排序需要保证List集合中的元素实现了Comparable接口
        List<WuGui2> wuGuis = new ArrayList<>();
        wuGuis.add(new WuGui2(1000));
        wuGuis.add(new WuGui2(800));
        wuGuis.add(new WuGui2(8000));
        wuGuis.add(new WuGui2(80));

        Collections.sort(wuGuis);
        for (WuGui2 wg : wuGuis){
            System.out.println(wg);
        }

        //这种方式也可以排序
        //Collection.sort(List集合，比较器对象);

        //对set集合怎么排序
        Set<String> set = new HashSet<>();
        set.add("king");
        set.add("king1");
        set.add("A");
        set.add("B");
        set.add("D");

        //将Set转换成List
        List<String> myList = new ArrayList<>(set);
        Collections.sort(myList);
        for (String l : myList){
            System.out.println(l);
        }

    }
}
class WuGui2 implements Comparable<WuGui2> {
    int age;
    public WuGui2(int age){
        this.age = age;
    }

    public String toString(){
        return "乌龟[" +
                "age=" + age+
                ']';
    }

    @Override
    public int compareTo(WuGui2 o) {
        return this.age - o.age;
    }
}